package gui.negocio.funcionario;

import gui.dados.cliente.TelaCadastrarCliente;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.MessageFormat;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import negocio.cliente.Cliente;

public class TelaNota extends JFrame {
	
	private JButton btImprimir, btFinalizar;
	private JScrollPane scrollNota;
	private JTextArea txtNota;
	private Cliente cliente;
	private String nome = "";
	public static int qtdTotalDePedidos = 0;
	public static Double valorToTalDosPedidos = 0.0;
	public static int indiceRelatorio = 0;
	public static Cliente[] listaRelatorio = new Cliente[100];
	
	
	
	
	
	
	public TelaNota(String titulo, int largura, int altura){
		super(titulo);
		this.setBounds(0, 0, largura, altura);
		setResizable(false);
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		configurarTela();
		setVisible(true);
		
	}

	private void configurarTela() {
		
		btImprimir = new JButton("Imprimir nota");
		btFinalizar = new JButton("Finalizar pedido");
		
		txtNota = new JTextArea();
		scrollNota = new JScrollPane(txtNota);
		
		BorderLayout bl = new BorderLayout();
		setLayout(bl);
		
		JPanel painelSuperior = new JPanel();
		JPanel painelCentro = new JPanel();
		JPanel painelInferior = new JPanel();
		
		painelSuperior.setBackground(Color.red);
		painelCentro.setBackground(Color.white);
		painelInferior.setBackground(Color.red);
		
		add(painelSuperior, BorderLayout.NORTH);
		add(painelCentro, BorderLayout.CENTER);
		add(painelInferior,BorderLayout.SOUTH);
		
		painelSuperior.setLayout(new GridLayout(1,2));
		painelSuperior.add(btImprimir);
		painelSuperior.add(btFinalizar);
		
		painelCentro.setLayout(new GridLayout(1,3));
		painelCentro.add(new JLabel());
		painelCentro.add(scrollNota);
		painelCentro.add(new JLabel());
		
		painelInferior.add(new JLabel("CopyRigth UFRPE BSI 2� per�odo 2013"));
		
		cliente = TelaCadastrarCliente.cdc.recuperarCliente(PedidoPt1.telefone);
		
		
		for(int i = 0; i<= cliente.getPedido()[cliente.getQtdPedido()-1].getNomeProduto().length-1;i++){
			if (cliente.getPedido()[cliente.getQtdPedido()-1].getNomeProduto()[i] != null){
				nome = nome + "\n" + cliente.getPedido()[cliente.getQtdPedido()-1].getNomeProduto()[i];
			}
			
		}
		
		
		cliente = TelaCadastrarCliente.cdc.recuperarCliente(PedidoPt1.telefone);
		
		
		
		txtNota.insert("Cliente: "+ cliente.getNome(), txtNota.getCaretPosition());
		txtNota.insert("\n\nEndere�o: \n" + "Rua: " + cliente.getRua()
				+ "   N�mero: "+ cliente.getNumero()+ "\nBairro: "+ cliente.getBairro()
				+ "\nCidade: "+ cliente.getCidade(), txtNota.getCaretPosition());
		txtNota.insert("\n\nTelefone para contato:\n" + "Telefone fixo: " + cliente.getTelefoneFixo()
				+ "\nTelefone Celular: "+cliente.getTelefoneCelular(),txtNota.getCaretPosition());
		txtNota.insert("\n\nPedidos:" + nome + "\n\n" +"Total:  R$: " + cliente.getPedido()[cliente.getQtdPedido()-1].getTotal().toString(),txtNota.getCaretPosition());
		
		nome ="";
		
		
		btImprimir.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				try {
					txtNota.print(new MessageFormat("Nota do pedido\n"), new MessageFormat("P�gina - {0}"),true,
							null,null,true);
					
				} catch (Exception e) {
					Logger.getLogger(getClass().getName()).log(Level.SEVERE,null,e);
				}
				
			}
		});
		
		btFinalizar.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				qtdTotalDePedidos +=1;
				valorToTalDosPedidos += cliente.getPedido()[cliente.getQtdPedido()-1].getTotal();
				dispose();
				boolean foraDaLista = true;
				for(int i=0; i<= listaRelatorio.length-1;i++){
					if(listaRelatorio[i] != null){
						if(!(cliente.getTelefoneFixo().equals(listaRelatorio[i].getTelefoneFixo()))){
							foraDaLista = true;
						}else{
							foraDaLista = false;
							break;
						}
					}
				}
				if (foraDaLista){
					listaRelatorio[indiceRelatorio] = cliente;
					indiceRelatorio +=1;
				}
				JOptionPane.showMessageDialog(null, "Pedido finalizado com sucesso e adicionado ao relat�rio");
				
				
				
				
			}
		});
		
	}

}
